import GameConfig from "./GameConfig";
import { ui } from "./ui/layaMaxUI";
class Main {
	constructor() {
		//根据IDE设置初始化引擎		
		if (window["Laya3D"]) Laya3D.init(GameConfig.width, GameConfig.height);
		else Laya.init(GameConfig.width, GameConfig.height, Laya["WebGL"]);
		Laya["Physics"] && Laya["Physics"].enable();
		Laya["DebugPanel"] && Laya["DebugPanel"].enable();
		Laya.stage.scaleMode = GameConfig.scaleMode;
		Laya.stage.screenMode = GameConfig.screenMode;
		Laya.stage.alignV = GameConfig.alignV;
		Laya.stage.alignH = GameConfig.alignH;
		//兼容微信不支持加载scene后缀场景
		Laya.URL.exportSceneToJson = GameConfig.exportSceneToJson;

		//打开调试面板（通过IDE设置调试模式，或者url地址增加debug=true参数，均可打开调试面板）
		if (GameConfig.debug || Laya.Utils.getQueryString("debug") == "true") Laya.enableDebugPanel();
		if (GameConfig.physicsDebug && Laya["PhysicsDebugDraw"]) Laya["PhysicsDebugDraw"].enable();
		if (GameConfig.stat) Laya.Stat.show();
		Laya.alertGlobalError(true);

		//激活资源版本控制，version.json由IDE发布功能自动生成，如果没有也不影响后续流程
		Laya.ResourceVersion.enable("version.json", Laya.Handler.create(this, this.onVersionLoaded), Laya.ResourceVersion.FILENAME_VERSION);
	}

	onVersionLoaded(): void {
		//激活大小图映射，加载小图的时候，如果发现小图在大图合集里面，则优先加载大图合集，而不是小图
		Laya.AtlasInfoManager.enable("fileconfig.json", Laya.Handler.create(this, this.onConfigLoaded));
	}

	onConfigLoaded(): void {
		Laya.Scene.load("LoadingView.scene", Laya.Handler.create(null, () => {
			Laya.Scene.setLoadingPage(new ui.LoadingViewUI());
			//加载IDE指定的场景
			GameConfig.startScene && Laya.Scene.open(GameConfig.startScene);
		}));
	}
}

class MyButton extends Laya.Button {
	private imgZoomOut: Laya.Image = null;

	constructor() {
		super();
		this.on(Laya.Event.MOUSE_DOWN, this, this.onmousedown);
		//添加鼠标抬起事件侦听。抬起时还原按钮。
		this.on(Laya.Event.MOUSE_UP, this, this.onmouseup);
		//添加鼠标离开事件侦听。离开时还原按钮。
		this.on(Laya.Event.MOUSE_OUT, this, this.onmouseup);
	}

	private onmousedown() {
		
		this.imgZoomOut = new Laya.Image(this.skin);
		let scaleFactor = 1.05;
		this.imgZoomOut.scale(scaleFactor, scaleFactor, true);
		this.imgZoomOut.pos(- (this.width * scaleFactor - this.width) / 2, - (this.height * scaleFactor - this.height) / 2);
		this.addChild(this.imgZoomOut);
		this.text.removeSelf();
		this.addChild(this.text);

	}

	private onmouseup() {
		if (this.imgZoomOut) {
			this.imgZoomOut.removeSelf();
			this.imgZoomOut = null;
		}
	}
}

Laya.View.regComponent("Button", MyButton);

//激活启动类
new Main();
